package request

//公共参数
type PublicReq struct {
	AppId     string `json:"app_id"`
	Timestamp string `json:"timestamp"`
	V         string `json:"v"`
	MsgDigest string `json:"msg_digest"`
}

//注册账号参数
type AccountRegisterReq struct {
	OpenId      string `json:"open_id"`
	AccountType string `json:"account_type"`
	PublicReq
}

//实名信息哈希存证
type HashDepositParam struct {
	CustomerId       string `json:"customer_id"`
	PreservationName string `json:"preservation_name"`
	PreservationDesc string `json:"preservation_desc"`
	FileName         string `json:"file_name"`
	NoperTime        string `json:"noper_time"`
	FileSize         string `json:"file_size"`
	OriginalSha256   string `json:"original_sha256"`
	TransactionId    string `json:"transaction_id"`
	CertFlag         string `json:"cert_flag"`
	PublicReq
}

type PersonDepositReqParam struct {
	CustomerId               string `json:"customer_id"`                // 是 客户编号 注册账号时返回
	PreservationName         string `json:"preservation_name"`          // 是 存证名称 字符（len<=100）
	PreservationDesc         string `json:"preservation_desc"`          //否 存证描述 字符（len<=100）
	PreservationDataProvider string `json:"preservation_data_provider"` //是 存证数据提供方 字符（len<=30）
	Name                     string `json:"name"`                       //是 姓名
	DocumentType             string `json:"document_type"`              // 否 证件类型 默认是0：身份证 具体查看5.18附录
	Idcard                   string `json:"idcard"`                     //是 证件号

	Mobile                        string        `json:"mobile"`                           //否 手机号 verified_type =2/4必填
	VerifiedTime                  string        `json:"verified_time"`                    //否 实名时间
	VerifiedType                  string        `json:"verified_type"`                    // 是 实名存证类型 1:公安部二要素(姓 名+身份证); 2:手机三要素(姓名 +身份证+手机号); 3:银行卡三要素(姓 名+身份证+银行 卡); 4:四要素(姓名+身 份证+手机号+银行 卡) Z：其他
	PublicSecurityEssentialFactor string        `json:"public_security_essential_factor"` //否 verified_type =1 公安部二要 素 verified_type =1 必填
	MobileEssentialFactor         string        `json:"mobile_essential_factor"`          //否 verified_type =2手机三要素 verified_type =2 必填
	BankEssentialFactor           string        `json:"bank_essential_factor"`            //否 verified_type =3银行卡三要 素 verified_type =3 必填
	MobileAndBankEssentialFactor  string        `json:"mobile_and_bank_essential_factor"` //否 verified_type =4四要素 verified_type =4 必填请求参数
	LiveDetection                 LiveDetection //否 活体检测信息 json数据
	CertFlag                      string        `json:"cert_flag"` //否 是否认证成功后 自动申请编号证 书参数值为“0”： 不申请； 参数值为“1”： 自动申
	PublicReq
}

type PersonDepositFileParam struct {
	IdcardPositiveFile string `json:"idcard_positive_file"` // 否 证件照正面 图片格式： bmp、png、gif、 jpeg、jpg、peg
	IdcardNegativeFile string `json:"idcard_negative_file"` // 否 证件照反面 图片格式： bmp、png、gif、 jpeg、jpg、peg
	LiveDetectionFile  string `json:"live_detection_file"`  // 否 活体检测图 图片格式： bmp、png、gif、 jpeg、jpg、peg
}

type LiveDetection struct {
	TransactionId string `json:"transaction_id"` //可选 活体检测交易号
	Result        string `json:"result"`         // 可选 活体检测结果
}

//企业实名信息存证
type CompanyDepositParam struct {
	CustomerId               string `json:"customer_id"`                // 是 客户编号 注册账号时返回
	PreservationName         string `json:"preservation_name"`          // 是 存证名称 字符（len<=100）
	PreservationDesc         string `json:"preservation_desc"`          // 否 存证描述 字符（len<=100）
	PreservationDataProvider string `json:"preservation_data_provider"` // 是 存证数据提供方 字符（len<=30）
	CompanyName              string `json:"company_name"`               // 是 企业名称
	DocumentType             string `json:"document_type"`              // 是 证件类型 1:三证合一； 2：旧版营业执照
	CreditCode               string `json:"credit_code"`                // 否 统一社会信用代 码 document_type =1时必填

	Licence string `json:"licence"` // 否 营业注册号 document_type =2时必填

	Organization string `json:"organization"` // 否 组织机构代码 document_type =2时必填

	VerifiedTime string `json:"verified_time"` // 否 实名时间 yyyyMMddHHmmss
	VerifiedMode string `json:"verified_mode"` // 是 实名认证方式 1:授权委托书； 2:银行对公打款

	PublicBranchBank               string `json:"public_branch_bank"`                   // 否 己方银行支行 verified_mode =2填
	PublicBankAccount              string `json:"public_bank_account"`                  // 否 己方银行账号 verified_mode =2填
	CustomerBank                   string `json:"customer_bank"`                        // 否 客户打款银行 verified_mode =2填
	CustomerBranchBank             string `json:"customer_branch_bank"`                 // 否 客户银行支行 verified_mode =2填
	CustomerBankAccount            string `json:"customer_bank_account"`                // 否 客户银行账号 verified_mode =2填
	PayType                        string `json:"pay_type"`                             // 否 打款类型 1.随 机码 2.随机金 额 verified_mode =2填
	AmountOrRandomCode             string `json:"amount_or_random_code"`                // 否 打款金额/打款 随机码
	UserBackFillAmountOrRandomCode string `json:"user_back_fill_amount_or_random_code"` // 否 用户回填金额/ 随机码
	CompanyPrincipalType           string `json:"company_principal_type"`               // 是 企业负责人身 份:1.法人，2代 理人
	CompanyPrincipalVerifiedMsg           //是 json 企业负责 人实名存证信息
	//请求参数
	LegalName     string `json:"legal_name"`     // 否 法人姓名 company_principal_type=2 必填
	LegalIdcard   string `json:"legal_idcard"`   // 否 法人身份证号
	TransactionId string `json:"transaction_id"` // 是 交易号 字符（len<=32）

	CertFlag string `json:"cert_flag"` // 否 是否认证成功后 自动申请编号证 书 参数值为 “0”：不申请， 参数值为“1”： 自动申请
	PublicReq
}

type CompanyDepositFileParam struct {
	CreditCodeFile     string `json:"credit_code_file"`     // 否 统一社会信用代 码电子版 document_type =1时必 填；图片格式： bmp、png、gif、jpeg、 jpg、peg
	LicenceFile        string `json:"licence_file"`         // 否 营业注册号电子 版 document_type =2时必 填；图片格式： bmp、png、gif、jpeg、 jpg、peg
	OrganizationFile   string `json:"organization_file"`    // 否 组织机构代码电 子版 document_type =2时必 填；图片格式： bmp、png、gif、jpeg、 jpg、peg
	PowerAttorneyFile  string `json:"power_attorney_file"`  //否 授权委托书电子 版 verifiedMode =1必填； 图片格式： bmp、png、gif、jpeg、 jpg、peg
	IdcardPositiveFile string `json:"idcard_positive_file"` //否 企业负责人证件 照正面 图片格式： bmp、png、gif、jpeg、 jpg、peg
	IdcardNegativeFile string `json:"idcard_negative_file"` // 否 企业负责人证件 照反面 图片格式： bmp、png、gif、jpeg、 jpg、peg
	LiveDetectionFile  string `json:"live_detection_file"`  // 否 企业负责人活体 检测图 图片格式： bmp、png、gif、jpeg、 jpg、peg
}

type CompanyPrincipalVerifiedMsg struct {
	CustomerId               string `json:"customer_id"`
	PreservationName         string `json:"preservation_name"`
	PreservationDesc         string `json:"preservation_desc"`
	PreservationDataProvider string `json:"preservation_data_provider"`
	Name                     string `json:"name"`
	DocumentType             string `json:"document_type"`
	Idcard                   string `json:"idcard"`
	IdcardPositiveFile       string `json:"idcard_positive_file"`
	IdcardNegativeFile       string `json:"idcard_negative_file"`
	Mobile                   string `json:"mobile"`
	VerifiedTime             string `json:"verified_time"`
	VerifiedType             string `json:"verified_type"`
	PublicSecurityEssentialFactor
	MobileEssentialFactor
	BankEssentialFactor
	MobileAndBankEssentialFactor
	LiveDetection
	LiveDetectionFile string `json:"live_detection_file"`
	CertFlag          string `json:"cert_flag"`
}

type PublicSecurityEssentialFactor struct {
	ApplyNum         string `json:"applyNum"`
	QueryTime        string `json:"queryTime"`
	SystemFlag       string `json:"systemFlag"`
	IdcardCompare    string `json:"idcardCompare"`
	NameCompare      string `json:"nameCompare"`
	VerifiedProvider string `json:"verifiedProvider"`
}

type MobileEssentialFactor struct {
	TransactionId          string `json:"transactionId"`
	MobileVerificationCode string `json:"mobileVerificationCode"`
	VerifiedProvider       string `json:"verifiedProvider"`
	Result                 string `json:"result"`
}

type BankEssentialFactor struct {
	Bank             string `json:"bank"`
	BankAccount      string `json:"bankAccount"`
	TransactionId    string `json:"transactionId"`
	VerifiedProvider string `json:"verifiedProvider"`
	Result           string `json:"result"`
}

type MobileAndBankEssentialFactor struct {
	Bank                   string `json:"bank"`
	BankAccount            string `json:"bankAccount"`
	TransactionId          string `json:"transactionId"`
	MobileVerificationCode string `json:"mobileVerificationCode"`
	VerifiedProvider       string `json:"verifiedProvider"`
	Result                 string `json:"result"`
}

//编号证书申请
type ApplyClientNumCert struct {
	CustomerId string `json:"customer_id"`
	EvidenceNo string `json:"evidence_no"`
	PublicReq
}

//实名证书申请
type ApplyCert struct {
	CustomerId       string `json:"customer_id"`
	VerifiedSerialNo string `json:"verified_serialno"`
	PublicReq
}

//印章上传
type AddSignature struct {
	CustomerId         string `json:"customer_id"`
	SignatureImgBase64 string `json:"signature_img_base_64"`
	PublicReq
}

//自定义印章
type CustomSignature struct {
	CustomerId string `json:"customer_id"`
	Content    string `json:"content"`
	PublicReq
}

//合同上传

type UploadDocs struct {
	ContractId string `json:"contract_id"` //是 合同编号 只允许长度<=32的英文或数字字符
	DocTitle   string `json:"doc_title"`   // 是 合同标题 如“xx投资合同”
	DocUrl     string `json:"doc_url"`     //是 文档地址 文档地址doc_url 和file 两个参数必选一
	//File string `json:"file"`//是 PDF文档 File文件doc_url 和file 两个参数必选一
	DocType string `json:"doc_type"` // 是 文档类型 .p
	PublicReq
}

//模板上传
type UploadTemplate struct {
	TemplateId string `json:"template_id"` //是 合同编号 只允许长度<=32的英文或数字字符
	DocUrl     string `json:"doc_url"`     //是 文档地址 文档地址doc_url 和file 两个参数必选一
	//File string `json:"file"`//是 PDF文档 File文件doc_url 和file 两个参数必选一
	PublicReq
}

//模板填充
type GenerateContract struct {
	DocTitle     string      `json:"doc_title"`     //是 文档标题 如“xx投资合同”
	TemplateId   string      `json:"template_id"`   // 是 模板编号
	ContractId   string      `json:"contract_id"`   //是 合同编号 只允许长度<=32的英文或数字字符
	FontSize     string      `json:"font_size"`     // 否 字体大小 如传入该参数，则按照该参数值设置字体大小；参考 word字体设置，例如：10,12,12.5,14； 若未传入该参数，则文本域字体大小按照文本域设置 时的大小（文本域设置为自动，则由系统计算字体大 小）
	FontType     string      `json:"font_type"`     //否 字体类型 默认宋体 0-宋体；1-仿宋；2-黑体；3-楷体；4-微软雅黑
	ParameterMap interface{} `json:"parameter_map"` // 是 填充内容 JsonObject字符串 key为文本域，value为要填充的值， value值传字符类型 示例： {"platformName":"The Earth","borrower":"Boss Horse"}
	PublicReq
	DynamicTables // 否 动态表格 JsonArray[dynamic_table]字符串 每个dynamic_table 元素表示一个动态表单，可以生 成多个表格。 示例（包含两个表格）： [{"datas":[["1","小网","小易","1000"], ["2","小云","小音","2000"], ["3","小乐","天马","3000"]], "headers":["序号","借款人","贷款人","金额"], "colWidthPercent":[1,4,4,4], "cellHeight":30,"cellHorizontalAlignment":0, "cellVerticalAlignment":5,"pageBegin":1, "theFirstHeader":"附一"}]
}

type DynamicTables struct {
	InsertWay                int        `json:"insertWay"`                // 否 动态表格插入 方式 0：新建页面添加table（默认） 1：在某个关键字后添加table
	Keyword                  string     `json:"keyword"`                  //否 关键字方式插 入动态表格 #1. 当insertWay为1时，必填 #2. 要求该关键字后（当前页）必 须不包含内容，否则会被覆盖 #3. 若关键字为多个 ，则取第一个 关键字，在此关键字后插入table
	PageBegin                int        `json:"pageBegin"`                // 否 表格需要插入 的页数 #1. 当insertWay为0时，必填 #2. 表示从第几页开始插入表格， 如要从末尾插入table,则 pageBegin为pdf总页数加1 #3. 多个表格指定相同 pageBegin，则多个表格按顺序插 入，一个表格新起一页 #4. pageBegin为-1时，则从pdf 末尾插入table
	BorderFlag               bool       `json:"borderFlag"`               // 否 table是否有 边框 true：有（默认） false：无边框
	CellHeight               float64    `json:"cellHeight"`               // 否 正文行高（表 头不受影响） 单位：pt，即point，等于1/72英 寸
	CellHorizontalAlignment  int        `json:"cellHorizontalAlignment"`  // 否 Table中每个 单元的水平对 齐方式 (0：居左；1：居中；2：居右) 默认为0
	CellVerticalAlignment    int        `json:"cellVerticalAlignment"`    // 否 Table中每个 单元的垂直对 齐方式 (4：居上；5：居中；6：居下) 默认为4
	TheFirstHeader           string     `json:"theFirstHeader"`           // 否 表头上方的一 级标题
	Headers                  []string   `json:"headers"`                  // 是 表头信息
	HeadersAlignment         int        `json:"headersAlignment"`         //  否 表头对齐方式 (0居左;1居中;2居右) 默认0
	Datas                    [][]string `json:"datas"`                    //否 正文 (外层表示行，内层表示列)
	ColWidthPercent          []int      `json:"colWidthPercent"`          // 否 各列宽度比例 默认值：各列1:1
	TableHorizontalAlignment int        `json:"tableHorizontalAlignment"` // 否 table的水平 对齐方式 (0居左，1居中，2居右) 默认1
	TableWidthPercentage     float64    `json:"tableWidthPercentage"`     // 否 table宽度的 百分比 (0<tableWidthPercentage<=100) 默认为100.0
	TableHorizontalOffset    float64    `json:"tableHorizontalOffset"`    // 设置table居 左居中居右后 的水平偏移量 (向右偏移值为正数，向左偏移值 为负数)默认为0.0，单位px(像素)
}

// 自动签署
type ExtSignAuto struct {
	TransactionId      string  `json:"transaction_id"`      // 是 交易号 每次请求视为一个交易。 只允许长度<=32 的英文或数字字符。 交易号为接入平台生成，必须保证唯一并自 行记录。
	ContractId         string  `json:"contract_id"`         //是 合同编号 根据合同编号指定在哪份文档上进行签署。 合同编号在文档传输或合同生成时设定。
	CustomerId         string  `json:"customer_id"`         // 是 客户编号 CA注册时获取。
	ClientRole         string  `json:"client_role"`         // 否 客户角色 1-接入平台； 2-仅适用互金行业担保公司或担保人； 3-接入平台客户（互金行业指投资人）； 4-仅适用互金行业借款企业或者借款人 如果需要开通自动签权限请联系法大大的商 务签署补充协议。
	DocTitle           string  `json:"doc_title"`           // 是 文档标题 如“xx投资合同”
	PositionType       string  `json:"position_type"`       // 否 定位类型 0-关键字（默认） 1-坐标
	SignKeyword        string  `json:"sign_keyword"`        // 否 定位关键字 关键字为文档中的文字内容（能被ctrl+f查找 功能检索到）。 法大大按此关键字进行签章位置的定位，将 电子章盖在这个关键字上面。凡出现关键字 的地方均会盖上指定用户的电子章，建议关 键字在合同中保持唯一。 当position_type为0时，此参数必填
	KeywordStrategy    string  `json:"keyword_strategy"`    // 否 关键字签章策略 关键字签章策略： 0：所有关键字签章 （默认）； 1：第一个关键字签章 ； 2：最后一个关键字签章； 业务参数
	SignaturePositions string  `json:"signature_positions"` // 否 定位坐标 类型：string 格式：JsonArray 当 position_type为1时，此参数必填
	NotifyUrl          string  `json:"notify_url"`          // 否 签署结果异步通知 URL 如果指定，当签章完成后，法大大将向此 URL发送签署结果。 参见 签署结果异步通知规范（notify_url）
	SignatureShowTime  string  `json:"signature_show_time"` // 否 时间戳显示方式 不传默认为1 1：以后台配置为准，如果存在部分签署显 示、部分签署不显示的场景，需要配置显示 时间戳，以及时间戳显示样式 2：不显示时间戳
	PageNum            int     `json:"pagenum"`
	X                  float32 `json:"x"`
	Y                  float32 `json:"y"`
	PublicReq
}

//手动签署
type ExtSign struct {
	TransactionId      string `json:"transaction_id"`      // 是 交易号每次请求视为一个交易。 只允许长度<=32的英文或数字字符。 交易号为接入平台生成，必须保证唯一 并自行记录。
	ContractId         string `json:"contract_id"`         // 是 合同编 号 根据合同编号指定在哪份文档上进行签 署。 合同编号在文档传输或合同生成时设定。
	CustomerId         string `json:"customer_id"`         // 是 客户编号CA注册时获取。
	DocTitle           string `json:"doc_title"`           // 是文档标题 如“xx投资合同” 。 需URL encoding处理，编码utf-8。
	PositionType       string `json:"position_type"`       //否定位类型0-关键字（默认）1-坐标
	SignKeyword        string `json:"sign_keyword"`        //否定位关键字关键字为文档中的文字内容（要能使用ctrl+f搜索到）。法大大按此关键字进行签章位置的定位，将电子章盖在这个关键字上面。凡出现关键字的地方均会盖上指定用户的电子章，建议关键字在合同中保持唯一。
	KeywordStrategy    string `json:"keyword_strategy"`    //否关键字签章策略关键字签章策略：0：所有关键字签章 （默认）；1：第一个关键字签章 ； 2：最后一个关键字签章；
	SignaturePositions string `json:"signature_positions"` //否定位坐标类型：string格式：JsonArray当position_type为1时，此参数必填
	ReturnUrl          string `json:"return_url"`          //否页面跳转URL（签署结果同步通知）当签章完成后，在签章页面停留数秒后浏览器会自动跳转到此URL，内容由接入平台自行展示；参见页面跳转规范（return_url）业务参数
	NotifyUrl          string `json:"notify_url"`          //否签署结果异步通知URL如果指定，当签章完成后，法大大将向此URL发送签署结果。参见签署结果异步通知规范（notify_url）

	//业务参数
	ReadTime          string `json:"read_time"`           //否合同必读时间0-60秒
	MobileSignType    string `json:"mobile_sign_type"`    //否 签章类型0：全部；1：标准；2：手写
	WritingTrack      string `json:"writing_track"`       //否是否开启手写轨迹 0：关闭 1：开启
	PcHandSignature   string `json:"pc_hand_signature"`   //否支持pc手写印章1：pc端支持手写印章（需mobil_sign_type签章类型为2时支持）
	SignVerifyWay     string `json:"sign_verify_way"`     //否签署意愿方式 1：短信；3：人脸识别
	VerifyWayFlag     string `json:"verify_way_flag"`     //否签署意愿方式选择人脸识别时， 人脸识别失败后自动调整为短信默认为0 0：不切换；1：切换
	OpenEnvironment   string `json:"open_environment"`    //否 打开环境0、跳转h5；（默认）1、支持在客户小程序path中跳转，path的写法如 /page/page1； 2、跳转法大大公证处小程序
	SignatureShowTime string `json:"signature_show_time"` //否时间戳显示方式不传默认为1 1：以后台配置为准，如果存在部分签署显示、部分签署不显示的场景，需要配置显示时间戳，以及时间戳显示样式2：不显示时间戳
	PublicReq
}

type ViewContract struct {
	ContractId string `json:"contract_id"`
	PublicReq
}

type DownLoadContract struct {
	ContractId string `json:"contract_id"`
	PublicReq
}

type ContractFiling struct {
	ContractId string `json:"contract_id"`
	PublicReq
}

//获取个人实名认证地址
type GetPersonVerifyUrl struct {
	CustomerId        string `json:"customer_id"`
	VerifiedWay       string `json:"verified_way"`
	PageModify        string `json:"page_modify"`
	NotifyUrl         string `json:"notify_url"`          // 否 回调地址 异步通知认证结果，url地址最 大长度256
	ReturnUrl         string `json:"return_url"`          // 否 同步通知url 认证结果返回地址，url地址最 大长度256
	CustomerName      string `json:"customer_name"`       // 否 姓名
	CustomerIdentType string `json:"customer_ident_type"` // 否 是否支持其他证件 类型 身份证-0 其他1
	CustomerIdentNo   string `json:"customer_ident_no"`   //否 证件号码： cert_type=0身份 证号 cert_type=1护照 号cert_type=B港澳 居民来往内地通行 证号 cert_type=C台湾 居民来往大陆通行 证号
	Mobile            string `json:"mobile"`              //否 手机号码 业务参数
	IdentFrontPath    string `json:"ident_front_path"`    // 否 证件正面照下载地 址： cert_type=0:身份 证正面 cert_type=1:护照 带人像图片 cert_type=B:港澳 居民来往内地通行 证照带人像图片 cert_type=C:台湾 居民来往大陆通行 证照带人像图片
	IdentBackPath     string `json:"ident_back_path"`     // 否 证件反面照下载地址：cert_type=0:身份证反面cert_type=1:护照封图片cert_type=B:港澳居民来往内地通行证照封图图片cert_type=C:台湾居民来往大陆通行证照封图图片
	IdPhotoOptional   string `json:"id_photo_optional"`   // 否 是否需要上传身份 照片 0-只需要头像面 1-头像面与国徽面都需要 2-都不需要
	ResultType        string `json:"result_type"`         // 否 刷脸是否显示结果 页面： 参数值为“1”：直 接跳转到 return_url或法大 大指定页面 参数值为“2”：需 要用户点击确认后 跳转到return_url 或法大大指定页面 参数值为“3”：认 证无论是否通过， 直接跳转 return_url，仅对 个人认证有效 业务参数
	CertFlag          string `json:"cert_flag"`           // 否 是否认证成功后自 动申请实名证书 参数值为“0”：不 申请 参数值为“1”：自动申请
	Option            string `json:"option"`              //否 add（新增） modify（修改） 不传默认add
	CertType          string `json:"cert_type"`           // 否 证件类型: 0：身份证； 1：护照； B：港澳居民来往 内地通行证, C：台湾居民来往 大陆通行证(默认为0，仅当支 持其他证件时，证 件类型1/B/C接口 允许同步传参)
	BankCardNo        string `json:"bank_card_no"`        //否 个人银行卡
	IsMiniProgram     string `json:"is_mini_program"`     //否 是否跳转法大大公 证处小程序认证， 0：小程序 webview内嵌法大 大h5（默认）； 1：跳转法大大公 证处小程序认证； 小程序支持的实名套餐类型： 0：三要素标准方案； 1：三要素补充方案； 2：四要素标准方案； 3：四要素补充方案： 9：人脸识别方案
	Lang              string `json:"lang"`                // 否 zh：中文； en：英文
	PublicReq
}

//获取企业实名认证地址
//type GetCompanyVerifyUrl struct {
//
//	customer_id string `json:"customer_id"`  //是 客户编号 注册账号时返回
//	verified_way string `json:"verified_way"` //否 实名认证套餐类 型： 0：标准方案 （对公打款+纸 质审核+法人身 份+法人授 权）； 1：对公打款； 2：纸质审核； 3：法人身份 （授权）认证 默认为0：标准方案
//	m_verified_way string `json:"m_verified_way"`// 否 管理员认证套餐类型：0：三要素标准方案；1：三要素方案；2：四要素标准方案；3：四要素补充方案；4：纯三要素方案；5：纯四要素方案；0、2-标准方案 [运营商三要素/银行 卡四要素通过，才能 人脸识别认证，人脸 认证通过即认证通 过]； 1、3-补充方案 [运营商三要素/银行 //卡四要素通过的情况 下认证成功，不通过 的情况下进行人脸识 别认证]； 4、5-纯要素方案 [运营商三要素/银行 卡四要素通过，则认 证通过]；
//	id_photo_optional string `json:"id_photo_optional"` //否 是否需要上传身份照片0-只需要头像面1-头像面与国徽面都需要2-都不需要
//	page_modify string `json:"page_modify"` // 是 是否允许用户页面修改1允许2不允许
//	company_info CompanyInfo  //否 企业信息
//	company_principal_type string  //否 企业负责人身份:1. 法人2. 代理人默认：用户到页面上自行选择一个身份
//	legal_info LegalInfo  //否 法人信息
//	//业务参数
//	agent_info AgentInfo  //否 代理人信息
//	bank_info BankInfo  //否 对公账号信息
//	result_type string    `json:"result_type"`  //否 刷脸是否显示结果页面参数值为“1”：直接跳转到return_url或法大大指定页面，参数值为“2”：需要用户点击确认后跳转到return_url或法大大指定页面
//	cert_flag string      `json:"cert_flag"` //否 是否认证成功后自动申请实名证书参数值为“0”：不申请参数值为“1”：自动申请
//	option string         `json:"option"`  //add（新增）modify（修改）不传默认add
//	verified_serialno string `json:"verified_serialno"`  // 否 管理员认证流水号verified_serialno认证序列号就是获取实名认证地址返回的交易号transactionNo
//	//authorization_file File 否 企业注册申请表
//	legal_name string  否
//	法人姓名（代理
//	人认证想要传法
//	人姓名可用此参
//	数）
//	lang string 否
//	zh:中文，en:英 文
//	organization_type string 否 组织类型
//	0：企业；
//	1：政府/事业单位；
//	2：其他组织；
//	3：个体工商户
//	notify_url string 否 回调地址 异步通知认证结果，
//	url地址最大长度256
//	return_url string 否 同步通知url 认证结果返回地址，
//	url地址最大长度256
//}
type CompanyInfo struct {
}

type LegalInfo struct {
}
type AgentInfo struct {
}
type BankInfo struct {
}

type FindPersonCertInfo struct {
	VerifiedSerialno string `json:"verified_serialno"`
	PublicReq
}
type GenerateContractParam struct {
	ContractId string `json:"contractId"`
	UserName   string `json:"userName"`
	UserPhone  string `json:"userPhone"`
	UserYear   string `json:"userYear"`
	UserMonth  string `json:"userMonth"`
	UserDay    string `json:"userDay"`
	UsersInfo  string `json:"usersInfo"`
	Year       string `json:"year"`
	Month      string `json:"month"`
	Day        string `json:"day"`
	//ProPortion string `json:"proPortion"`
}

type GetVerifyNotify struct {
	AppId              string `json:"appId" form:"appId"`                           //是 平台方id
	SerialNo           string `json:"serialNo" form:"serialNo"`                     //是 认证序列号
	CustomerId         string `json:"customerId" form:"customerId"`                 //是 客户编号
	Status             string `json:"status" form:"status"`                         //是个人Status： 0：未激活；1：未认证；2：审核通过；3：已提交待审核；4：审核不通过;企业status： 0：未认证；1：管理员资料已提交；2：企业基本资料(没有申请表)已提交；3：已提交待审核；4：审核通过（认证完成）；5：审核不通过；6人工初审通过（认证未完成，还需按提示完成接下来的操作）个人认证： 2，3，4企业认证中，选择不同认证方式，可能经过的状态不同。企业对公打款验证：3，4，5，6纸质材料审核：3，4，5，6企业法人身份认证：3，4，5法人授权认证：3，4，5初审通过后，还需按提示完成接下来的认证流程；认证完成以审核通过状态为准。以上状态发生变化就会调用异步通知接口，地址能访问http状态码是200就只回调一次，如果不是就会再次发起回调，连续异步通知3次，间隔10分钟，如果3次之后通知还是失败，建议主动查询个人/企业实名认证信息
	StatusDesc         string `json:"statusDesc" form:"statusDesc"`                 //否不通过原因描述参数 类型是否必填描述 备注
	CertStatus         string `json:"certStatus" form:"certStatus"`                 //否 0：没有申请证书或者申请证书失败，1：成功申请证书
	AuthenticationType string `json:"authenticationType" form:"authenticationType"` //否 帐号类型 1：个2：企业
	Timestamp          string `json:"timestamp" form:"timestamp"`                   //否 时间戳
	Sign               string `json:"sign" form:"sign"`                             //否摘要信息根据回调参数值计算的摘要，可供平台方校验回调信息是否被篡改，确保有效性Base64(SHA1(app_id +MD5(timestamp)+SHA1(app_secret+authenticationType+certStatus+customerId+serialNo+status+statusDesc)))
	//TransactionNo            string `json:"transactionNo" form:"transactionNo"`                       //是 交易号 该参数等同实名认证异步回调serialNO
	//Types                    string `json:"types" form:"type"`                                        //是1.个人 2企业
	//PassTime                 string `json:"passTime" form:"passTime"`                                 //否 审核通过 时间 yyyy-MM-dd HH:mm:ss.0
	//AuthenticationSubmitTime string `json:"authenticationSubmitTime" form:"authenticationSubmitTime"` // 是认证提交时间 yyyy-MM-dd HH:mm:ss.0
	//Person                   Person `json:"person" form:"person"`
}
type Person struct {
	PersonName           string `json:"personName" form:"personName"`                     //是 个人姓名
	Types                string `json:"types" form:"type"`                                //是1.个人 2企业 1：法人； 2：代理人
	CertType             string `json:"certType" form:"certType"`                         // 是 证件类型：0：身份证；1：护照；B：香港居民来往内地通行证; C：台湾居民来往大陆通行证
	AuditorTime          string `json:"auditorTime" form:"auditorTime"`                   //否 审核时间 yyyy-MM-dd HH:mm:ss
	IdCard               string `json:"idCard" form:"idCard"`                             //是 身份证号
	Mobile               string `json:"mobile" form:"mobile"`                             //是 手机号
	Status               string `json:"status" form:"status"`                             // 是0:未激活；1:未认证；2:审核通过；3:已提交待审核；4:审核不通过
	VerifyType           string `json:"verifyType" form:"verifyType"`                     //是person认证方式：0:腾讯云认证;1:三要素认证;2:手势照认证
	AuditFailReason      string `json:"auditFailReason" form:"auditFailReason"`           // 否 不通过原因
	HeadPhotoPath        string `json:"headPhotoPath" form:"headPhotoPath"`               // 是身份证正面图片uuid当certType=0时是身份证正面图片uuid;当certType=1时是护照带人像图片uuid;当certType=B时是香港居民来往内地通行证照带人像图片uuid;当certType=C时是台湾居民来往大陆通行证照带人像图片uuid参数 类型是否必填描述 备注
	BackgroundIdCardPath string `json:"backgroundIdCardPath" form:"backgroundIdCardPath"` //是身份证反面图片uuid当certType=0时是身份证反面图片uuid;当certType=1时是护照封面uuid;当certType=B时是香港居民来往内地通行证照封面图片uuid;当certType=C时是台湾居民来往大陆通行证照封面图片uuid
	PhotoUuid            string `json:"photoUuid" form:"photoUuid"`                       //否微众返回的照片uuid只有通过微众人脸识别成功才返回
	GesturesPhotoPath    string `json:"gesturesPhotoPath" form:"gesturesPhotoPath"`       //否手势照图片uuid 手势照图片uuid
	Fork                 string `json:"fork" form:"fork"`                                 //否 民族
	Birthday             string `json:"birthday" form:"birthday"`                         //否 出生日期 yyyy-MM-dd
	Sex                  string `json:"sex" form:"sex"`                                   //否 性别 1男，2女
	StartDate            string `json:"startDate" form:"startDate"`                       //否 证件起始时间 yyyy-MM-dd
	ExpiresDate          string `json:"expiresDate" form:"expiresDate"`                   //否 证件到期时间 yyyy-MM-dd
	IssueAuthority       string `json:"issueAuthority" form:"issueAuthority"`             //否 颁发机构
	Address              string `json:"address" form:"address"`                           //否 地址
	BankCardNo           string `json:"bankCardNo" form:"bankCardNo"`                     //否 银行卡号
	IsLongTerm           string `json:"isLongTerm" form:"isLongTerm"`                     //否身份证是否长期有效0-否，1-是当需传身份证背面时才有值
	IsPassThreeElement   string `json:"isPassThreeElement" form:"isPassThreeElement"`     //否是否通过三要素-1:未校验,0:不一致,1:一致
	IsPassFourElement    string `json:"isPassFourElement" form:"isPassFourElement"`       //否是否通过四要素-1:未校验,0:不一致,1:一致
	AreaCode             string `json:"areaCode" form:"areaCode"`                         //否 区号中国大陆：0086,香港：00852, 澳门：00853,台湾：00886, 默认手机区号为中国大陆
}

type GetExtSignNotify struct {
	TransactionId string `json:"transaction_id" form:"transaction_id"` // 必选 交易号
	ContractId    string `json:"contract_id" form:"contract_id"`       // 必选 合同编号
	ResultCode    string `json:"result_code" form:"result_code"`       //  必选 签章结果代码 3000（签章成功） 3001（签章失败）
	ResultDesc    string `json:"result_desc" form:"result_desc"`       // 必选 签章结果描述 签章结果描述信息
	DownloadUrl   string `json:"download_url" form:"download_url"`     // 可选 下载地址 下载签署后的合同
	ViewpdfUrl    string `json:"viewpdf_url" form:"viewpdf_url"`       // 可选 查看地址 查看签署后的合同
	Timestamp     string `json:"timestamp" form:"timestamp"`           // 必选 请求时间 yyyyMMddHHmmss
	MsgDigest     string `json:"msg_digest" form:"msg_digest"`         // 必选 摘要Base64(SHA1(app_id +MD5(timestamp)+SHA1(app_secret+transaction_id)))建议接入平台方进行校验
}
